// Function的类属性

// 所有类都有一个名称是name的类属性用于获取其类名
console.log( 'name: ', Function.name );

// 所有构造函数都有一个名称是length的类属性用于获取参数个数
// 注意这里的参数个数是从第一个没有默认值的参数开始统计的
// 只要遇到一个有默认值的参数就不再统计(若第一个参数就有默认值则返回零)
console.log( 'length: ', Function.length );

function Animal(a,b,c,d) {}
console.log( Animal.name );
console.log( Animal.length ); // 4

function Birds(a,b,c=3,d,e,f) {}
console.log( Birds.name );
console.log( Birds.length ); // 2

function Beast(a=1,b,c=3,d,e,f) {}
console.log( Beast.name );
console.log( Beast.length ); // 0

// 取得Function的原型(它是Object类的一个实例)
console.log( Function.prototype );
console.log( Object.getPrototypeOf( Function.prototype ) === Object.prototype );
console.log( Function.prototype.__proto__ === Object.prototype );